
30.06.2017, 15:57
|
Новичок на форуме
|
|
Регистрация: 30.06.2017
Сообщений: 6
|
|
jquery ajax перестают отправляться GET-запросы
Привет гуру сего форума, у меня есть проблемка сути которой я никак не могу понять, пробовал даже через form.serialize то же самое, дело в том что у меня есть несколько полей:
<div class="textareadiv">
<textarea id="text" name="Message" id="TextMessage" COLS="55" ROWS="2" placeholder="Текст сообщения...">
</textarea>
</div>
<div class="buttonarea">
<input id="sendmessbut" type="submit" name="SubmBtn" value="Отправить">
</div>
<input type="hidden" name="option1" id="opt1" value="'.md5($user->login).'">
<input type="hidden" name="option2" id="opt2" value="1">
<div id="MesError"> </div>
Вот обработчик GET запроса:
$('#sendmessbut').click(function( e ){
var message = $('#text').val();
var opt1 = $('#opt1').val();
var opt2 = $('#opt2').val();
var requri = '../res/send.php?Message='+message+'&option1='+opt1+'&option2='+opt2;
$.ajax({
type: 'GET',
url: requri,
dataType: 'json',
beforeSend: function(data) {
$(this).attr('disabled', 'disabled');
},
success: function(data){
if (data['error']) {
$('#MesError').text(data['error']);
}
else
{
$('#TextMessage').val('');
$.ajax({
type: 'GET',
url: '../res/msg.php?user='+user+'&reloadmsg',
beforeSend: function(data) {
$('#test').html('<div ".$loading."><img ".$src."></div>');
},
success: function(data){
$('#test').html(data);
},
complete: function(data) {
scrolling = $('.message');
$(scrolling).scrollTop(($(scrolling).prop('scrollHeight')));
$('#text').reset();
}
});
}
},
complete: function(data) {
$(this).prop('disabled', false);
}
});
e.preventDefault();
});
Дело в том что если не трогать значение полей:
1) input name="option1"
2) input name="option2"
Все прекрасно работает, запрос отправляется, ответ приходит, однако стоит поменять значение в одном из вышеперечисленного поля запрос отправляется, но ответ перестает приходить.
Вопрос что я делаю не так (скажу что я не очень силен в jquery, но кой чего состряпать могу)?
|
|

30.06.2017, 16:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
id="text" name="Message" id="TextMessage"
Для уверенности?
|
|

30.06.2017, 17:21
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
hittment,
Сообщение от hittment
|
поменять значение в одном из вышеперечисленного поля
|
Каким образом, если они hidden? и что вы туда вписываете?
Что за user в строке 22?
Сообщение от hittment
|
запрос отправляется, но ответ перестает приходить
|
Ну это скорее вопрос к обработчику запросов
|
|

01.07.2017, 16:37
|
Новичок на форуме
|
|
Регистрация: 30.06.2017
Сообщений: 6
|
|
Сообщение от laimas
|
id="text" name="Message" id="TextMessage"
Для уверенности?
|
Спасибо за замечание, не заметил =)
Сообщение от Dilettante_Pro
|
hittment,
Каким образом, если они hidden? и что вы туда вписываете?
Что за user в строке 22?
Ну это скорее вопрос к обработчику запросов
|
В hidden у меня параметры которые нет надобности отображать, с помощью jquery изменяются значения.
Туда вписывается непосредственно логин юзера которому отправить сообщение
Последний раз редактировалось hittment, 01.07.2017 в 16:46.
|
|

03.07.2017, 10:33
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
hittment,
Вы задаете вопрос, но не излагаете деталей. Причина может быть в какой-то мелочи.
Сообщение от hittment
|
с помощью jquery изменяются значения
|
Пример можно?
Сообщение от hittment
|
Туда вписывается непосредственно логин юзера которому отправить сообщение
|
А обработчик на сервере что делает с этим параметром?
|
|

03.07.2017, 11:41
|
Новичок на форуме
|
|
Регистрация: 30.06.2017
Сообщений: 6
|
|
Сообщение от Dilettante_Pro
|
hittment,
Вы задаете вопрос, но не излагаете деталей. Причина может быть в какой-то мелочи.
Пример можно?
А обработчик на сервере что делает с этим параметром?
|
Я в скринах показал что происходит если с изначально выбранным юзером "переписыватся", и если кого то другого выбрать.
И я никак не пойму почему если в первом случае все работает нормально, то во втором перестает работать.
На сервере обработчик сверяет пришедшее значение со значением в БД.
Вот мое творение прошу сильно не критиковать ибо это мой первый сайт который я пишу, код обработчика:
<?php
include("setting.php");
header("Content-Type: text/json; charset=utf-8");
$json = array();
if(isset($_GET))
{
// SendMessage($_POST['option1'],$_POST['Message'],$_POST['option2']);
if($_GET['option1'] == $_SESSION['logged_user']->login)
{
$json['error'] = 'Ошибка, попытка отправить сообщение самому себе!';
echo json_encode($json);
die();
}
$table = '';
if($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
if($table != '')
{
$query = "SELECT * FROM ".$table;
$result = R::getall($query);
$users = R::convertToBeans( $table, $result );
foreach ($users as $curus)
{
if(md5($curus->login) == $_GET['option1'])
$user = $curus;
}
if($user)
{
$row = R::findOne('dialogs', 'receive = ? AND send = ? OR receive = ? AND send = ?',
array(
md5($user->id.$user->login.$user->IsAdmin),
md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin),
md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin),
md5($user->id.$user->login.$user->IsAdmin)
)
);
if($row)//найден диалог
{
$did = $row->id;
$row->status = 0;
$row->send = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
$row->receive = md5($user->id.$user->login.$user->IsAdmin);
R::store($row);
}
else// не найден диалог
{
$row = R::dispense('dialogs');
$row->status = 0;
$row->send = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
$row->receive = md5($user->id.$user->login.$user->IsAdmin);
$did = R::store($row);
}
if( $_GET['Message'] != "")
{
$msg = R::dispense('messages');
$msg->did = $did;
$msg->user = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
$msg->message = $_GET['Message'];
$msg->senddate = date("Y-m-d H:i:s");
R::store($msg);
$json['error'] = 0;
echo json_encode($json);
}
else
{
$json['error'] = "Введите ссобщение!";
echo json_encode($json);
}
}//endif $user==false
else
{
$json['error'] = 'Пользователь не найден!';
echo json_encode($json);
die();
}
}
}
?>
Тут полная версия скринов:
1) http://u4enik.de/img/скрин1.png
2) http://u4enik.de/img/скрин2.png
Последний раз редактировалось hittment, 03.07.2017 в 11:50.
|
|

03.07.2017, 11:52
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от hittment
|
if($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
if($table != '')
|
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
//выполнение
} else echo 'идите лесом';
|
|

03.07.2017, 18:02
|
Новичок на форуме
|
|
Регистрация: 30.06.2017
Сообщений: 6
|
|
Сообщение от laimas
|
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
//выполнение
} else echo 'идите лесом';
|
Не могли бы вы объяснить что делает первая строка?
|
|

03.07.2017, 18:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от hittment
|
что делает первая строка?
|
А что у вас делают эти строки?
f($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
Надо полагать задают имя таблицы, к которой будет запрос, если судить по запросу, так ведь? Зачем же эта писанина, если имена таблиц можно объявить массивом, начиная с ключа 1. Остается только проверить есть ли таблица запрашиваемая параметром $_GET['option2'], и если возвращает не NULL, выполняем запрос.
|
|

03.07.2017, 19:52
|
Новичок на форуме
|
|
Регистрация: 30.06.2017
Сообщений: 6
|
|
Сообщение от laimas
|
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
//выполнение
} else echo 'идите лесом';
|
Сообщение от laimas
|
А что у вас делают эти строки?
f($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
Надо полагать задают имя таблицы, к которой будет запрос, если судить по запросу, так ведь? Зачем же эта писанина, если имена таблиц можно объявить массивом, начиная с ключа 1. Остается только проверить есть ли таблица запрашиваемая параметром $_GET['option2'], и если возвращает не NULL, выполняем запрос.
|
Спасибо, интегрировал. Также я разобрался в чем ошибка, теперь все работает...
строки с 23 по 31 изменил на :
$users = R::findAll($table);
foreach ($users as $curus => $value)
{
if(strcmp(md5($users[$curus]->email) ,$_GET['option1']) ==0)
{
$user = $users[$curus];
}
}
Последний раз редактировалось hittment, 03.07.2017 в 20:06.
|
|
|
|